package vip.xumy.admin.sys.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import vip.xumy.admin.sys.mapper.IConfigMapper;
import vip.xumy.admin.sys.pojo.SysConfig;
import vip.xumy.core.utils.StringUtil;

@Service
public class ConfigService {
	@Autowired
	private IConfigMapper cfgMapper;

	public String queryValueByKey(String cfgKey) {
		return cfgMapper.queryValueByKey(cfgKey);
	}

	/**
	 * 读取Long类型配置参数值
	 * @param key
	 * @param defValue
	 * @return
	 */
	public long getLongConfig(String key, long defValue) {
		String value = queryValueByKey(key);
		
		if (!StringUtil.isEmpty(value)) {
			return Long.parseLong(value);
		} else {
			return defValue;
		}
	}
	
	/**
	 * 读取Integer类型配置参数值
	 * @param key
	 * @param defValue
	 * @return
	 */
	public Integer getIntConfig(String key, Integer defValue) {
		String value = queryValueByKey(key);
		
		if (!StringUtil.isEmpty(value)) {
			return new Integer(value);
		} else {
			return defValue;
		}
	}
	
	public String getStringConfig(String key, String defValue) {
		String value = queryValueByKey(key);
		
		if (StringUtil.isEmpty(value)){
			return defValue;
		}
		
		return value;
	}
	
	
	public List<SysConfig> queryByExample(SysConfig example) {
		return cfgMapper.queryByExample(example);
	}
	
	public void update(SysConfig sysConfig) {
		cfgMapper.update(sysConfig);
	}

	public void updateCfg(String key, String value, String userId) {
		SysConfig cfg = get(key);
		if(cfg != null) {
			cfg.setCfgValue(value);
			cfg.setUpdateUser(userId);
			update(cfg);
		}
	}
	
	private SysConfig get(String key) {
		SysConfig example = new SysConfig();
		example.setCfgKey(key);
		List<SysConfig> list = cfgMapper.queryByExample(example);
		if(list == null || list.isEmpty()) {
			return null;
		}
		return list.get(0);
	}
	
	
}
